class CustomSurveys::Mmpi

  @@dimens = {:L => "L", :F => "F", :K => "K", :Hs => "Hs", :D => "D", :Hy => "Hy", :Pd => "Pd",
      :Mf => "Mf", :Pa => "Pa", :Pt => "Pt", :Sc => "Sc", :Ma => "Ma", :Si => "Si"
    }

  @@map_male = {
  "L" => [[10,67],[9 ,63],[8 ,59],[7 ,55],[6 ,51],[5 ,47],[4 ,43],[3 ,39],[2 ,35],[1 ,31],
           [0 ,27]],
  "F" => [[28,70],[27,69],[26,67],[25,66],[24,65],[23,63],[22,62],[21,60],[20,59],[19,57],
           [18,56],[17,54],[16,53],[15,51],[14,50],[13,49],[12,47],[11,46],[10,44],[9 ,43],
           [8 ,41],[7 ,40],[6 ,38],[5 ,37],[4 ,35],[3 ,34],[2 ,32],[1 ,31],[0 ,30]],
  "K" => [[22,69],[21,67],[20,65],[19,62],[18,60],[17,58],[16,56],[15,54],[14,52],[13,50],
           [12,47],[11,45],[10,43],[9 ,41],[8 ,39],[7 ,37],[6 ,34],[5 ,32],[4 ,30],[3 ,28],
           [2 ,26],[1, 24],[0 ,21]],
  "D" => [[36,69],[35,67],[34,65],[33,63],[32,61],[31,59],[30,57],[29,55],[28,53],[27,51],
           [26,49],[25,47],[24,45],[23,43],[22,41],[21,39],[20,37],[19,35],[18,33],[17,31],
           [16,29],[15,27],[14,25],[13,23],[12,21]],
  "Hy" => [[33,70],[32,68],[31,66],[30,64],[29,62],[28,61],[27,59],[26,57],[25,55],[24,53],
           [23,51],[22,49],[21,48],[20,46],[19,44],[18,42],[17,40],[16,38],[15,36],[14,34],
           [13,33],[12,31],[11,29],[10,27],[9 ,25],[8 ,23],[7 ,21]],
  "Mf" => [[36,70],[35,68],[34,65],[33,63],[32,60],[31,58],[30,56],[29,53],[28,51],[27,47],
           [26,45],[25,43],[24,41],[23,38],[22,36],[21,33],[20,31],[19,28],[18,26],[17,23],
           [16,21]],
  "Pa" => [[21,70],[20,68],[19,65],[18,63],[17,60],[16,58],[15,55],[14,52],[13,50],[12,47],
           [11,45],[10,42],[9 ,40],[8 ,37],[7 ,35],[6 ,32],[5 ,30],[4 ,27],[3 ,24],[2 ,22]],
  "Si" => [[48,69],[47,68],[46,66],[45,65],[44,63],[43,62],[42,60],[41,59],[40,57],[39,56],
           [38,55],[37,53],[36,52],[35,50],[34,49],[33,47],[32,46],[31,44],[30,43],[29,41],
           [28,40],[27,39],[26,37],[25,36],[24,34],[23,33],[22,31],[21,30],[20,28],[19,27],
           [18,26],[17,24],[16,23],[15,21],[14,20]],
  "Hs" => [[48,118],[47,116],[46,114],[45,112],[44,110],[43,108],[42,106],[41,104],[40,102],[39,99],
           [38,97],[37,95],[36,93],[35,91],[34,89],[33,87],[32,85],[31,83],[30,81],[29,78],
           [28,76],[27,74],[26,72],[25,70],[24,68],[23,66],[22,64],[21,62],[20,59],[19,57],
           [18,55],[17,53],[16,51],[15,49],[14,47],[13,45],[12,43],[11,40],[10,38],[9 ,36],
           [8 ,34],[7 ,32],[6 ,30],[5 ,28],[4 ,26],[3 ,24],[2 ,22]],
  "Pd" => [[54,120],[53,118],[52,115],[51,113],[50,110],[49,108],[48,106],[47,103],[46,101],[45,99],
           [44,96],[43,94],[42,92],[41,89],[40,87],[39,84],[38,82],[37,80],[36,77],[35,75],
           [34,73],[33,70],[32,68],[31,66],[30,63],[29,61],[28,59],[27,55],[26,54],[25,51],
           [24,49],[23,47],[22,44],[21,42],[20,40],[19,37],[18,35],[17,33],[16,30],[15,28],
           [14,25],[13,23],[12,21]],
  "Pt" => [[71,120],[70,118],[69,116],[68,114],[67,113],[66,111],[65,109],[64,107],[63,106],[62,104],
           [61,102],[60,100],[59,99],[58,97],[57,95],[56,93],[55,92],[54,90],[53,88],[52,86],
           [51,84],[50,83],[49,81],[48,79],[47,77],[46,76],[45,74],[44,72],[43,71],[42,69],
           [41,67],[40,65],[39,64],[38,62],[37,60],[36,58],[35,57],[34,55],[33,53],[32,51],
           [31,50],[30,48],[29,46],[28,45],[27,43],[26,41],[25,39],[24,38],[23,36],[22,34],
           [21,32],[20,31],[19,29],[18,27],[17,25],[16,24],[15,22],[14,21]],
  "Sc" => [[94,120],[93,119],[92,118],[91,116],[90,115],[89,114],[88,113],[87,112],[86,110],[85,109],
           [84,108],[83,107],[82,105],[81,104],[80,103],[79,102],[78,101],[77,99],[76,97],[75,97],
           [74,96],[73,95],[72,93],[71,92],[70,91],[69,90],[68,88],[67,87],[66,86],[65,85],
           [64,84],[63,82],[62,81],[61,80],[60,79],[59,77],[58,76],[57,75],[56,74],[55,73],
           [54,71],[53,70],[52,69],[51,68],[50,67],[49,65],[48,64],[47,63],[46,62],[45,60],
           [44,59],[43,58],[42,57],[41,56],[40,54],[39,53],[38,52],[37,51],[36,49],[35,48],
           [34,47],[33,46],[32,45],[31,43],[30,42],[29,41],[28,40],[27,39],[26,37],[25,36],
           [24,35],[23,34],[22,33],[21,31],[20,30],[19,29],[18,28],[17,26],[16,25],[15,24],
           [14,23],[13,21],[12,20]],
  "Ma" => [[55,119],[54,117],[53,115],[52,113],[51,111],[50,109],[49,107],[48,105],[47,103],[46,101],
           [45,99],[44,97],[43,95],[42,93],[41,91],[40,88],[39,86],[38,84],[37,82],[36,80],
           [35,78],[34,76],[33,74],[32,72],[31,70],[30,68],[29,66],[28,64],[27,62],[26,60],
           [25,58],[24,56],[23,53],[22,51],[21,49],[20,47],[19,45],[18,43],[17,41],[16,39],
           [15,37],[14,35],[13,33],[12,31],[11,29],[10,27],[9 ,25],[8 ,23],[7 ,20]]
  }

  @@map_female = {
  "L" => [[10,67],[9 ,63],[8 ,59],[7 ,55],[6 ,51],[5 ,47],[4 ,43],[3 ,39],[2 ,35],[1 ,31],
           [0 ,27]],
  "F" => [[22,70],[21,68],[20,66],[19,64],[18,62],[17,60],[16,57],[15,55],[14,54],[13,52],
           [12,50],[11,48],[10,46],[9 ,44],[8 ,42],[7 ,40],[6 ,38],[5 ,36],[4 ,34],[3 ,32],
           [2 ,30],[1 ,28]],
  "K" => [[21,70],[20,68],[19,65],[18,63],[17,61],[16,58],[15,56],[14,54],[13,51],[12,49],
           [11,47],[10,44],[9 ,42],[8 ,40],[7 ,37],[6 ,35],[5 ,32],[4 ,30],[3 ,28],[2 ,25],
           [1 ,23],[0 ,20]],
  "D" => [[38,69],[37,67],[36,65],[35,63],[34,61],[33,59],[32,57],[31,55],[30,53],[29,51],
           [28,49],[27,47],[26,45],[25,43],[24,41],[23,39],[22,37],[21,35],[20,33],[19,31],
           [18,29],[17,27],[16,25],[15,23],[14,21]],
  "Hy" => [[34,70],[33,68],[32,66],[31,64],[30,62],[29,61],[28,59],[27,57],[26,55],[25,53],
           [24,52],[23,50],[22,48],[21,46],[20,44],[19,43],[18,41],[17,39],[16,37],[15,35],
           [14,34],[13,32],[12,30],[11,28],[10,26],[9 ,25],[8 ,23],[7 ,21]],
  "Mf" => [[43,21],[42,24],[41,26],[40,29],[39,31],[38,34],[37,37],[36,39],[35,42],[34,44],
           [33,46],[32,50],[31,52],[30,56],[29,58],[28,60],[27,63],[26,65],[25,67],[24,70]],
  "Pa" => [[20,68],[19,66],[18,63],[17,61],[16,58],[15,56],[14,53],[13,50],[12,48],[11,45],
           [10,43],[9 ,40],[8 ,38],[7 ,35],[6 ,33],[5 ,30],[4 ,28],[3 ,25],[2 ,22],[1 ,20]],
  "Si" => [[51,70],[50,68],[49,67],[48,65],[47,64],[46,63],[45,61],[44,60],[43,58],[42,57],
           [41,55],[40,54],[39,52],[38,51],[37,49],[36,48],[35,46],[34,45],[33,43],[32,42],
           [31,40],[30,39],[29,37],[28,36],[27,34],[26,33],[25,31],[24,30],[23,28],[22,27],
           [21,25],[20,24],[19,21],[18,20]],
  "Hs" => [[51,120],[50,118],[49,116],[48,114],[47,112],[46,110],[45,108],[44,106],[43,104],[42,102],
           [41,100],[40,98],[39,96],[38,94],[37,92],[36,90],[35,88],[34,86],[33,84],[32,82],
           [31,80],[30,78],[29,76],[28,74],[27,72],[26,70],[25,68],[24,66],[23,64],[22,62],
           [21,60],[20,58],[19,56],[18,54],[17,52],[16,50],[15,48],[14,46],[13,44],[12,42],
           [11,40],[10,39],[9 ,36],[8 ,34],[7 ,31],[6 ,29],[5 ,27],[4 ,25],[3 ,23],[2 ,21]],
  "Pd" => [[54,119],[53,117],[52,114],[51,112],[50,110],[49,108],[48,105],[47,103],[46,101],[45,99],
           [44,96],[43,94],[42,92],[41,90],[40,87],[39,85],[38,83],[37,81],[36,78],[35,76],
           [34,74],[33,72],[32,69],[31,67],[30,65],[29,63],[28,60],[27,58],[26,55],[25,54],
           [24,51],[23,49],[22,47],[21,45],[20,42],[19,40],[18,38],[17,36],[16,33],[15,31],
           [14,29],[13,27],[12,24],[11,22],[10,20]],
  "Pt" => [[72,119],[71,118],[70,116],[69,114],[68,113],[67,111],[66,109],[65,108],[64,106],[63,104],
           [62,102],[61,101],[60,99],[59,97],[58,96],[57,94],[56,92],[55,90],[54,89],[53,87],
           [52,85],[51,84],[50,82],[49,80],[48,79],[47,77],[46,75],[45,73],[44,72],[43,70],
           [42,68],[41,67],[40,65],[39,63],[38,61],[37,60],[36,58],[35,56],[34,55],[33,53],
           [32,51],[31,50],[30,48],[29,46],[28,44],[27,43],[26,41],[25,39],[24,38],[23,36],
           [22,34],[21,32],[20,31],[19,29],[18,27],[17,26],[16,24],[15,22],[14,21]],
  "Sc" => [[87,118],[86,117],[85,116],[84,114],[83,113],[82,112],[81,110],[80,109],[79,108],[78,107],
           [77,105],[76,104],[75,103],[74,101],[73,100],[72,99],[71,97],[70,96],[69,95],[68,93],
           [67,92],[66,91],[65,89],[64,88],[63,87],[62,85],[61,84],[60,83],[59,81],[58,80],
           [57,79],[56,78],[55,76],[54,75],[53,74],[52,72],[51,71],[50,70],[49,68],[48,67],
           [47,66],[46,64],[45,63],[44,62],[43,60],[42,59],[41,58],[40,56],[39,55],[38,54],
           [37,53],[36,51],[35,50],[34,49],[33,47],[32,46],[31,45],[30,43],[29,42],[28,41],
           [27,39],[26,38],[25,37],[24,35],[23,34],[22,33],[21,31],[20,30],[19,28],[18,27],
           [17,26],[16,25],[15,24],[14,22],[13,21],[12,20]],
  "Ma" => [[53,119],[52,117],[51,115],[50,113],[49,111],[48,109],[47,107],[46,105],[45,103],[44,101],
           [43,99],[42,97],[41,95],[40,93],[39,90],[38,88],[37,86],[36,84],[35,82],[34,80],
           [33,78],[32,76],[31,74],[30,72],[29,70],[28,68],[27,66],[26,64],[25,62],[24,60],
           [23,58],[22,56],[21,53],[20,51],[19,49],[18,47],[17,45],[16,43],[15,41],[14,39],
           [13,37],[12,35],[11,33],[10,31],[9 ,29],[8 ,27],[7 ,25],[6 ,23],[5 ,21]],
  }

  #维度分计算公式(男)
  @@dimen_formulas_male = {
    "L" => "f15+f30+f45+f60+f75+f90+f105+f120+f135+f150+f165+f195+f225+f255+f285",

    "F" => "q14+q27+q31+q34+q35+q40+q42+q48+q49+q50+q53+q56+q66+q85+q121+q123+q139+q146+
            q151+q156+q168+q184+197+q200+q202+q205+q206+q209+q210+q211+q215+q218+q227+q245+
            q246+q247+q252+q256+q269+q275+q286+q288+q291+q293 +f17+f20+f54+f65+f75+f83+f112
            +f113+f115+f164+f169+f177+f185+f196+f199+f220+f257+f258+f272+f276",
    
    "K" => "q96+f30+f39+f71+f89+f124+f129+f134+f138+f142+f148+f160+f170+f171+f180+f183+f217
            +f234+f267+f272+f296+f316+f322+f368+f370+f372+f373+f375+f386+f394",
    
    "Hs" => "q23+q29+q43+q62+q72+q108+q114+q125+q161+q189+q273 +f2+f3+f7+f9+f18+f51+f55+f63
            +f68+f103+f130+f153+f155+f163+f175+f188+f190+f192+f230+f243+f274+f281",

    "D" => "q5+q32+q41 +q43 +q52 +q67 +q86 +q104 +q130 +q138 +q142 +q158 +q159 +q182 +q189
           +q193 +q236 +q259 +q288 +q290
           +f2 +f8 +f9 +f18 +f30+f36+f39+f46+f51+f57+f58+f64+f80+f88+f89+f95+f98+f107+f122
           +f131+f145+f152+f153+f154+f155+f160+f178+f191+f207+f208+f233+f241+f242+f248+f263
           +f270+f271+f272+f285+f286",

    "Hy" => "q10+q23+q32+q43+q44+q47+q76+q114+q179+q186+q189+q238+q253
            +f2+f3+f6+f7+f8+f9+f12+f26+f30+f51+f55+f71+f89+f93+f103+f107+f109+f124+f128+f129
            +f136+f137+f141+f147+f153+f160+f162+f163+f170+f172+f174+f175+f180+f188+f190+f192
            +f201+f213+f230+f234+f243+f265+f267+f274+f279+f289+f292",

    "Pd" => "q16 +q21+q24+q32+q33+q35+q38+q42+q61+q67+q84+q94+q102+q106+q110+q118+q127+q215+q216+q224+q239+q244+q245+q284
            +f8+f20+f37+f82+f91+f96+f107+f134+f137+f141+f155+f170+f171+f173+f180+f183+f201+f231+f235+f237+f248+f267+f287+f289+f294+f296",

    "Mf" => "q4+q25+q69+q70+q74+q77+q78+q87+q92+q126+q132+q134+q140+q149+q179+q187+q203+q204+q217+q226+q231+q239+q261+q278+q282+q295+q297+q299
            +f1+f19+f26+f28+f79+f80+f81+f89+f99+f112+f115+f116+f117+f120+f133+f144+f176+f198+f213+f214+f219+f221+f223+f229+f249+f254+f260+f262+f264+f280+f283+f300",

    "Pa" => "q16+q24+q27+q35+q110+q121+q123+q127+q151+q157+q158+q202+q275+q284+q291+q293+q299+q305+q314+q317+q326+q338+q341+q364+q365
            +f93+f107+f109+f111+f117+f124+f268+f281+f294+f313+f316+f319+f327+f347+f348",

    "Pt" => "q10+q15+q22+q32+q41+q67+q76+q86+q94+q102+q106+q142+q159+q182+q189+q217+q238+q266+q301+q304+q321+q336+q337+q340
            +q342+q343+q344+q346+q349+q351+q352+q356+q357+q358+q359+q360+q361+q362+q366
            +f3+f8+f36+f122+f152+f164+f178+f329+f353",

    "Sc" => "q15+q22+q40+q41+q47+q52+q76+q97+q104+q121+q156+q157+q159+q168+q179+q182+q194+q202+q210+q212+q238+q241+q251+q259+q266+q273+q282+q291
            +q297+q301+q303+q307+q308+q311+q312+q315+q320+q323+q324+q325+q328+q331+q332+q333+q334+q335+q339+q341+q345+q349+q350+q352+q354+q355+q356+q360+q363+q364+q366+
            +f17+f65+f103+f119+f177+f178+f187+f192+f196+f220+f276+f281+f302+f306+f309+f310+f318+f322+f330",

    "Ma" => "q11+q13+q21+q22+q59+q64+q73+q97+q100+q109+q127+q134+q143+q156+q157+q167+q181+q194+q212
            +q222+q226+q228+q232+q233+q238+q240+q250+q251+q263+q266+q268+q271+q277+q279+q298
            +f101+f105+f111+f119+f120+f148+f166+f171+f180+f267+f289",

    "Si" => "q32+q67+q82+q111+q117+q124+q138+q147+q171+q172+q180+q201+q236+q267+q278+q292+q304+q316+q321+q332+q336+q342+q357
            +q369+q370+q373+q376+q378+q379+q385+q389+q393+q398+q399
            +f25+f33+f57+f91+f99+f119+f126+f143+f193+f208+f229+f231+f254+f262+f281+f296+f309+f353+f359+f367+f371+f374+f377
            +f380+f381+f382+f383+f384+f387+f388+f390+f391+f392+f395+f396+f397",
   }

  #维度分计算公式(女)
  @@dimen_formulas_female = {
    "L" => "f15+f30+f45+f60+f75+f90+f105+f120+f135+f150+f165+f195+f225+f255+f285",

    "F" => "q14+q27+q31+q34+q35+q40+q42+q48+q49+q50+q53+q56+q66+q85+q121+q123+q139+q146+
            q151+q156+q168+q184+197+q200+q202+q205+q206+q209+q210+q211+q215+q218+q227+q245+
            q246+q247+q252+q256+q269+q275+q286+q288+q291+q293 +f17+f20+f54+f65+f75+f83+f112
            +f113+f115+f164+f169+f177+f185+f196+f199+f220+f257+f258+f272+f276",

    "K" => "q96+f30+f39+f71+f89+f124+f129+f134+f138+f142+f148+f160+f170+f171+f180+f183+f217
            +f234+f267+f272+f296+f316+f322+f368+f370+f372+f373+f375+f386+f394",

    "Hs" => "q23+q29+q43+q62+q72+q108+q114+q125+q161+q189+q273 +f2+f3+f7+f9+f18+f51+f55+f63
            +f68+f103+f130+f153+f155+f163+f175+f188+f190+f192+f230+f243+f274+f281",

    "D" => "q5+q32+q41 +q43 +q52 +q67 +q86 +q104 +q130 +q138 +q142 +q158 +q159 +q182 +q189
           +q193 +q236 +q259 +q288 +q290
           +f2 +f8 +f9 +f18 +f30+f36+f39+f46+f51+f57+f58+f64+f80+f88+f89+f95+f98+f107+f122
           +f131+f145+f152+f153+f154+f155+f160+f178+f191+f207+f208+f233+f241+f242+f248+f263
           +f270+f271+f272+f285+f286",

    "Hy" => "q10+q23+q32+q43+q44+q47+q76+q114+q179+q186+q189+q238+q253
            +f2+f3+f6+f7+f8+f9+f12+f26+f30+f51+f55+f71+f89+f93+f103+f107+f109+f124+f128+f129
            +f136+f137+f141+f147+f153+f160+f162+f163+f170+f172+f174+f175+f180+f188+f190+f192
            +f201+f213+f230+f234+f243+f265+f267+f274+f279+f289+f292",

    "Pd" => "q16 +q21+q24+q32+q33+q35+q38+q42+q61+q67+q84+q94+q102+q106+q110+q118+q127+q215+q216+q224+q239+q244+q245+q284
            +f8+f20+f37+f82+f91+f96+f107+f134+f137+f141+f155+f170+f171+f173+f180+f183+f201+f231+f235+f237+f248+f267+f287+f289+f294+f296",

    "Mf" => "q4+q25+q70+q74+q77+q78+q87+q92+q126+q132+q133+q134+q140+q149+q187+q203+q204+q217+q226+q239+q261+q278+q282+q295+q299
            +f1+f19+f26+f28+f69+f79+f80+f81+f89+f99+f112+f115+f116+f117+f120+f144+f176+f179+f198+f213+f214+f219+f221+f223+f229+f231+f249+f254+f260+f262+f264+f280+f283+f297+f300",

    "Pa" => "q16+q24+q27+q35+q110+q121+q123+q127+q151+q157+q158+q202+q275+q284+q291+q293+q299+q305+q314+q317+q326+q338+q341+q364+q365
            +f93+f107+f109+f111+f117+f124+f268+f281+f294+f313+f316+f319+f327+f347+f348",

    "Pt" => "q10+q15+q22+q32+q41+q67+q76+q86+q94+q102+q106+q142+q159+q182+q189+q217+q238+q266+q301+q304+q321+q336+q337+q340
            +q342+q343+q344+q346+q349+q351+q352+q356+q357+q358+q359+q360+q361+q362+q366
            +f3+f8+f36+f122+f152+f164+f178+f329+f353",

    "Sc" => "q15+q22+q40+q41+q47+q52+q76+q97+q104+q121+q156+q157+q159+q168+q179+q182+q194+q202+q210+q212+q238+q241+q251+q259+q266+q273+q282+q291
            +q297+q301+q303+q307+q308+q311+q312+q315+q320+q323+q324+q325+q328+q331+q332+q333+q334+q335+q339+q341+q345+q349+q350+q352+q354+q355+q356+q360+q363+q364+q366+
            +f17+f65+f103+f119+f177+f178+f187+f192+f196+f220+f276+f281+f302+f306+f309+f310+f318+f322+f330",

    "Ma" => "q11+q13+q21+q22+q59+q64+q73+q97+q100+q109+q127+q134+q143+q156+q157+q167+q181+q194+q212
            +q222+q226+q228+q232+q233+q238+q240+q250+q251+q263+q266+q268+q271+q277+q279+q298
            +f101+f105+f111+f119+f120+f148+f166+f171+f180+f267+f289",

    "Si" => "q32+q67+q82+q111+q117+q124+q138+q147+q171+q172+q180+q201+q236+q267+q278+q292+q304+q316+q321+q332+q336+q342+q357
            +q369+q370+q373+q376+q378+q379+q385+q389+q393+q398+q399
            +f25+f33+f57+f91+f99+f119+f126+f143+f193+f208+f229+f231+f254+f262+f281+f296+f309+f353+f359+f367+f371+f374+f377
            +f380+f381+f382+f383+f384+f387+f388+f390+f391+f392+f395+f396+f397",
   }

  #男性常模
  @@norm_male = {
    "L" => {"M" => 5.31, "SD" => 2.44},
    "F" => {"M" => 12.63, "SD" => 5.36}, 
    "K" => {"M" => 12.29, "SD" => 4.38}, 
    
    "Hs" => {"M" => 8.34, "SD" => 4.30},
    "D" => {"M" => 25.79, "SD" => 5.02},
    "Hy" => {"M" => 21.50, "SD" => 5.04},
    "Pd" => {"M" => 19.05, "SD" => 4.44},
    "Mf" => {"M" => 27.81, "SD" => 4.25},
    "Pa" => {"M" => 12.98, "SD" => 3.93},
    "Pt" => {"M" => 19.31, "SD" => 7.74},
    "Sc" => {"M" => 23.83, "SD" => 9.15},
    "Ma" => {"M" => 19.56, "SD" => 4.98},
    "Si" => {"M" => 34.84, "SD" => 7.19},
  }

  @@norm_female = {
    "L" => {"M" => 5.59, "SD" => 2.48},
    "F" => {"M" => 11.89, "SD" => 5.03},
    "K" => {"M" => 11.66, "SD" => 4.05},

    "Hs" => {"M" => 9.47, "SD" => 4.71},
    "D" => {"M" => 28.00, "SD" => 5.09},
    "Hy" => {"M" => 22.20, "SD" => 5.43},
    "Pd" => {"M" => 18.43, "SD" => 4.318},
    "Mf" => {"M" => 31.81, "SD" => 4.03},
    "Pa" => {"M" => 12.89, "SD" => 4.02},
    "Pt" => {"M" => 19.81, "SD" => 7.60},
    "Sc" => {"M" => 23.96, "SD" => 9.26},
    "Ma" => {"M" => 17.49, "SD" => 4.98},
    "Si" => {"M" => 37.50, "SD" => 6.95},
  }

  @@highs = {
    "F" => "",
    "K" => "",

    "Hs" => "可能有许多模糊的身体问题，这些问题倾向于慢性、心理治疗反应欠佳，一般表现为不愉快、自我中心，发牢骚、诉苦、有敌意、要求高和引人注目。 ",
    "D" => "有抑郁情绪，缺乏自尊心和感觉不适，这是临床病人最常见的高分量表之一，表现为易怒、胆小、依赖、悲观、烦恼、易激动、懒散、过度控制及自罪，有不舒适的感觉，需要改变或减轻症状。",
    "Hy" => "倾向于依赖性、神经症性防卫，以否认和压抑来对付心理压力，高分者表现为依赖、天真、外露、幼稚、和自我陶醉，他们的人际关系常被破坏，对问题缺少自知之明，高分者中，
            强烈的心理压力常常带来躯体的症状；在临床检查阴性的女病人中，本量表分数出现高峰，高分者虽常对暗示有反应，但却又抵制以内省为主的治疗，他们表现为低水平的心理欲望，把心理问题说成是躯体问题。 ",
    "Pd" => "与反社会行为有关，难以控制，家庭关系破裂、冲动、难以遵守学习、工作纪律或法律，可有酒精中毒或滥用药物等。高分者中可能有人格特征的障碍，如表现外露、善于交际、可爱但会骗人，做作、好享乐、
              好出风头、判断力差，不可信赖、不成熟、有敌意、好寻衅。他们常在婚姻或家庭关系方面存在问题和有法律方面的纠葛，高分一般反映有性格问题，并对治疗有强大的阻力，
              高分者可能会接受治疗，但通常却会很快中断。 ",
    "Mf" => "",
    "Pa" => "",
    "Pt" => "",
    "Sc" => "",
    "Ma" => "",
    "Si" => "",
  }
  
  @@codes = [
    {
      :name => "M12",
      :dimen1 => "HsD",
      :dimen2 => "HsD",
      :expl => "被试者明显的身体关注，伴随情绪抑郁。这种‘躯体疾病’可能是功能性的，也可能是器质性的，包括心脏疾病，胃肠道疾病（ 如溃疡病及呕吐）。经常主诉疼痛，头昏，睡眠障碍，虚弱，疲乏无力，感到情绪焦虑，紧张，神经质，明显缺乏信心，提不起精神，对他人对自己的看法很敏感。潜在的人格是被动依赖性的，容易对药物和酒产生滥用或依赖。被试者以过度压抑和躯体化作为其防御机制，缺乏洞察力和自我判断力。临床上表现该编码型的病人包括消化性溃疡，关节炎和慢性呼吸道疾患。
              在精神病院的研究发现，几乎半数病人的第一、二诊断是躯体化障碍或心理因素影响躯体功能状态，以及适应性障碍。鉴别诊断包括情感性障碍和恐惧性障碍。人格诊断：焦虑-惊恐型人格障碍，依赖-强迫-被动攻击型人格。"
    },
    {
      :name => "M13",
      :dimen1 => "HsHy",
      :dimen2 => "HsHy",
      :expl => "被试者有神经质表现，诉说相当多的躯体症状，包括背痛，头痛，胃肠疾病，爱发脾气，虚弱，偶尔有眩晕，肢体麻木及震颤。有时存在情绪焦虑或抑郁，容易将其心理问题转换为迷惑不清的躯体形式的功能性疾病。自我中心，不成熟，易受暗示，有长期的和过度的受人同情、注意和安慰的需求。很少会因‘ 疾病’而丧失社会功能，但有将自己生活中的问题转化为社会可接受形式的强烈要求，以过度压抑、否认和躯体化等作为主要的防御机制。疾病所造成的继发性获益是亲近家庭成员给予他更多的照顾，使其避免承担各种责任。在有背痛的人中，治疗效果不好。在一项规模较大的，设立了良好对照的研究中，通过单纯医疗手段使其背痛得以缓解的人数不到10%。
              表现有各种各样的躯体疾病，下背痛，发作性哮喘，假性神经性疾病（ 如假性多发性硬化症）和女性尿道综合征。除此而外，胃肠及心脏疾病时也可能见到。
              在被试者中，大多数第一、二、三诊断是躯体形式障碍（ 包括躯体化障碍，心理源性疼痛，疑病）或心理因素影响躯体状况，而以躯体形式障碍及心理因素影响躯体状况占多数。鉴别诊断：情感性障碍和适应性障碍。人格障碍：强迫、被动-
              攻击或依赖型人格障碍。
              "
    },
    {
      :name => "M14",
      :dimen1 => "HsPd",
      :dimen2 => "HsPd",
      :expl => "被试者表现有典型的疑病症状，特别是有迷惑不清的头痛，犹豫不决，焦虑。虽然表面上外向，与异性交往却很困难。通常有家庭冲突史，缺乏士气，成就低下，或有不寻常的问题行为史，明显的表现有易发脾气，悲观，爱抱怨。总的来说，与被试者很难相处，对酒精有高度易感性。
              诊断：情感性障碍，抑郁症，物质滥用，躯体形式障碍，心理因素影响躯体状况。人格障碍：被动-攻击型人格。"
    },
    {
      :name => "M15",
      :dimen1 => "HsMf",
      :dimen2 => "HsMf",
      :expl => "被动，缺乏果断，依赖。通常有很多躯体陈述，回避承担家庭和社会义务，多诊断为疑病症或者转换反应（ 障碍）。疗效不好。在青少年，有多动，行为冲动，缺乏男子气，自认为有多种躯体疾病，而且从幼年就有病。被试者极度敏感，人格僵化，执拗，易怒，容易患躯体化障碍，容易受到集中应激的损害。对于认为的额外的要求非常敏感，过分担心躯体健康。有时为早期精神病人，存在躯体先占观念，对他人不信任。
              诊断：情感性障碍，抑郁症，躯体化障碍，心理因素影响躯体状态，偏执性障碍。人格障碍：回避型人格。"
    },
    {
      :name => "M17",
      :dimen1 => "HsPt",
      :dimen2 => "HsPt",
      :expl => "被试者常是慢性神经质患者，情绪紧张，焦虑，有明显的强迫性症状，常表现有躯体障碍，而且往往与紧张和焦虑直接相关，有时显示对躯体功能的强迫性关注。往往缺乏安全感，压抑，缺乏自信，易产生潜在的内疚感和自卑感。
                可能性诊断包括情感性障碍，抑郁症，焦虑性障碍，躯体化障碍，心理因素影响躯体状态。人格障碍：依赖，被动!攻击，回避或强迫型人格。"
    },
    {
      :name => "M18",
      :dimen1 => "HsSc",
      :dimen2 => "HsSc",
      :expl => "被试者行为古怪，令人费解。社交无能，不适当，情绪异己，感到自己和别人不一样。缺乏自信，没有上进心，经常需要别人指导。在应对焦虑和应激上有困难，可能存在躯体妄想，不信任他人，注意力不能集中，常有思维紊乱。人际交往中不适应，尤其在与异性交往中显得无能，常压抑自己的愤怒和敌意感情。
              在精神病人中，半数以上的人被认为患有精神病性障碍，主要为重症情感性障碍，也可为分裂情感性障碍。主要鉴别诊断是物质滥用障碍。人格障碍：回避%被动攻击型人格。鉴别诊断：边缘型及分裂型人格。"
    },
    {
      :name => "M19",
      :dimen1 => "HsMa",
      :dimen2 => "HsMa",
      :expl => "被试者情绪压抑和不安，紧张，焦虑，烦躁，可能患有多种疾病，包括胃肠疾病，头痛，衰弱。往往通过活动过度对潜在的被动性和依赖性需求补偿，但可能会因达不到期望而受挫折。
诊断：损伤后应激障碍中较多见，其他诊断：情感性障碍，抑郁，适应性障碍，情感障碍，双相，躯体化障碍。人格障碍：被动-攻击型人格。
"
    },
    {
      :name => "M10",
      :dimen1 => "HsD",
      :dimen2 => "DHs",
      :expl => "被试者害羞，犹豫不决，可能有一些躯体不适。"
    },
    
    {
      :name => "M23/32",
      :dimen1 => "DHy",
      :dimen2 => "HyD",
      :expl => "被试者情绪抑郁，紧张，过分担心，悲伤，活动少，容易感到孤单无助，得不到同情和支持，有多种躯体疾病。有不安全感，不能表达自己的感情，可能有某种人格不成熟。常感到社交不适应，特别是对异性。害怕失败，过度控制，因为害怕失败而避免承担额外的责任。尽管如此，通常是小心谨慎的工作者，很看重自己的责任。性行为能力差，包括阴冷（ 女）及阳痿（ 男）。可能有长期的家庭不愉快（ 尤其是女性），但很少离婚。常患溃疡病。压抑和癔症的防卫机制是处理日常生活中遇到的难题的重要应对手段。
在精神病人中，往往有不寻常的行为方式，多疑敏感，思维障碍。主要表现为情感性障碍，少数（43%）被认为是躯体化障碍或是心理因素影响躯体状况，并将此作为第一，第二或第三诊断。人格障碍：回避，依赖或被动-攻击性人格。
"
    },
    {
      :name => "M24",
      :dimen1 => "DPd",
      :dimen2 => "DPd",
      :expl => "被试者人格不成熟，行为冲动，多具有被动-攻击性质。遇到外部问题时，往往表现出情境性抑郁。典型性表现有，缺乏内疚和悔恨感，不诚实，一旦目前的困难被平息，将会旧态复萌。常来源于破裂家庭，比较容易感受到的唯一的长期存在的痛苦是，对其自身缺乏成就和遭受到的挫折体验。对药物及酒精嗜好有高度易感性。往往存在婚姻问题。在教育及职业上无成就，不听劝告，容易冲动，自我陶醉，有时以自杀行为企图指责或要挟他人。在医院里，这些病人常给医务人员留下好印象；但当确实接受治疗时，对治疗者可能产生依赖。
在精神病人中，该编码型病人的主要诊断是抑郁%适应性障碍和混合性情感性障碍，而43%的人有物质滥用，并以此作为第一、二诊断。人格：被动-攻击型人格。鉴别诊断：戏剧性和反社会型人格。
"
    },
    {
      :name => "M25",
      :dimen1 => "DMf",
      :dimen2 => "DMf",
      :expl => "这种编码型少见。
被试者难以与异性交往，大多数已经离婚或者分居。对工作往往不满意，多有与工作有关的伤害，或者按照工伤对待。常有躯体不适的陈述，不少人有多种药物滥用史。尽管情绪抑郁，但交谈时能够给人以好印象。多被诊断为患有抑郁性障碍，但很少有躁狂发作或者双相发作。
如果是青少年，与同胞姊妹关系不好，犹豫不决，害羞，过分敏感，多疑，消极，缺乏男子气，持续时间长。有的有反社会行为，包括破坏，入室盗窃等。如果是男性大学生，常情绪焦虑，有躯体疾病史，而且持续时间也很长
"
    },
    {
      :name => "M26",
      :dimen1 => "DPa",
      :dimen2 => "DPa",
      :expl => "被试者容易受激惹，情绪抑郁，过分敏感。情绪反复无常，烦躁，苛求，很可能存在自杀念头及企图自杀。对他人及自身的恼怒，多数在恼怒之后出现自责及责怪他人。容易受激惹，对他人产生厌倦及情绪抑郁，往往因之导致他人与的疏远，人际关系遭到破坏。治疗困难。
在精神病人中，半数病人被认为患适应性障碍伴抑郁情绪或混合性情感障碍，少数人被认为患精神错乱，有重度抑郁或偏执性精神分裂症。人格障碍：回避，依赖，强迫性人格，也有相当数量的人被归于表演性-边缘性人格。
"
    },
    {
      :name => "M27/72",
      :dimen1 => "DPt",
      :dimen2 => "PtD",
      :expl => "被试者情绪焦虑，抑郁，神经高度紧张，烦扰，长期过分担忧和过度思虑，有多种神经质的表现，以及与焦虑相关的躯体不适。感到疲乏，衰竭，睡眠障碍，情绪悲观，常有自杀念头及企图。常很懒散，缺乏自信，但比较容易与他人建立亲近的情感联系，常有固定的工作和协调的婚姻。在寻找心理治疗帮助时，病人常诉自己难以集中注意力或管理日常事务。一旦抑郁和焦虑被消除，被试者又会变得积极进取。
在精神病人中，大多数诊断：情感障碍，重度抑郁，双相障碍。鉴别诊断：回避，强迫或被动!攻击!依赖人格。
"
    },
    {
      :name => "M28",
      :dimen1 => "DSc",
      :dimen2 => "DSc",
      :expl => "被试者孤独，绝望，焦虑，激动，紧张，情绪多变，注意力不能集中，睡眠障碍，思维混乱，健忘。常有躯体性症状，有时则是真正的躯体性妄想。不合群，不善交际，敏感，多疑，可能有情感遭受伤害的历史，因此害怕再次受到伤害。有明显的失望及失去自我价值的感觉，可能有妄想及牵连观念，偶尔有幻听。往往有与异性关系中感到不适应，容易出现性冲突。常有自杀念头及企图，少数人还会有预谋的自杀计划或行为。常怕失去自我控制，在寻求帮助时，易表现内在不安。存在情绪不稳，易激动，焦虑及强迫性思维，难于思考问题及集中注意力，解决问题的方式呆板，通常不能有效地处理各种事务。主诉还有睡眠障碍，记忆力减退，衰弱，容易疲劳，头昏。
在精神病人中，主要诊断是情感性障碍，70%被试者的诊断是重度情感性障碍、双相障碍、抑郁、重度抑郁。人格障碍：回避，强迫，被动!攻击性人格。
"
    },
    {
      :name => "M29/92",
      :dimen1 => "DMa",
      :dimen2 => "MaD",
      :expl => "明显的情绪压抑，烦躁，焦虑，抑郁，激动，可能表现活动过多。来源于三种有明确分类和诊断的病人：
1.混合性情感障碍中受激惹的抑郁症病人。2.有认识危机，并可能是自恋的，受激惹的被试者。3.器质性损伤的被试者，仍能意识到器官的丧失并因此抑郁，企图过度补偿这种损伤。在这种情况下，企图否认其缺陷。"
    },
    {
      :name => "M20/02",
      :dimen1 => "DSi",
      :dimen2 => "SiD",
      :expl => "在精神病人中，大多数人存在情感表达障碍，有重度情感障碍，重度抑郁和循环性障碍。主要的鉴别诊断是，适应性障碍伴混合性情感障碍。潜在人格特征回避型人格，往往显示抑郁，敏感的性格特征。"
    },
    {
      :name => "M32",
      :dimen1 => "HyD",
      :dimen2 => "HyD",
      :expl => "如果是妇女，常有婚姻适应障碍，但是很少离婚。有性冷淡，对夫妻性行为没有兴趣。常埋怨丈夫有外遇和酗酒，自我意识，很容易受批评伤害。
              在内科，具有这种病人大多数只就诊一次，躯体症状虽然没有改变也不再去找医生。却很少抑郁症状，似乎没有自知力。"
    },
    {
      :name => "M34",
      :dimen1 => "HyPd",
      :dimen2 => "HyPd",
      :expl => "被试者通常是有长期冲动性行为历史的人格障碍者，容易恼怒，平时隐藏其敌意及攻击性冲动，往往以被动-攻击方式或通过发作性暴怒反应释放其冲动行为。可能经历过爆发性行为时期，间歇期善交际，合作，友好，但却有心身症候。这种情况往往交替发生。通常有长期的家庭不愉快和长期婚姻问题史。常见多种行为发泄，性问题及性发泄，对药物及酒精嗜好有高度易感性。往往要求受人注意和获得别人的认同，对他人的反对态度极敏感，对向提出要求敏感。通常在一段时间的情绪发泄或过量饮酒后可能发生冲动性自杀企图。躯体疾病包括头痛，胃肠疾病，反复的眩晕发作。
有时，与反社会者有着持久的联系，并通过发泄出来。被试者有显著的依赖-自立性冲突，往往有反社会问题。对物质滥用有易感性。大多数诊断是适应性障碍，伴随情绪抑郁或混合情感障碍。人格障碍：表演性或边缘性与被动!攻击人格。"
    },
    {
      :name => "M35",
      :dimen1 => "HyMf",
      :dimen2 => "HyMf",
      :expl => "被试者反复无常，人格不成熟，要求很多。有躯体不适，诸如溃疡病，下背疼痛，头痛，或者有阳痿等，对自己的工作不满意。大多数被诊断为人格障碍，躯体化反应，或者疑病症。"
    },
    {
      :name => "M36",
      :dimen1 => "HyPa",
      :dimen2 => "HyPa",
      :expl => "被试者长期紧张，焦虑，有躯体疾病（ 如头痛，胃肠疾病）。还有长期的，根深蒂固的坏脾气，经常对家庭成员发无名之火。不善于直接表达自身的感受，一般不否认其自身的敌意。当意识到其恼怒时，即以合理化的方式表达。人格僵化，自我中心，容易将自身的问题显露出来。过多应用否认机制，对心理治疗抵触。如果是成年人，婚姻不愉快，不和睦的情况很多，很可能人际关系不
良。
诊断：情感性障碍，抑郁，适应性障碍，躯体化障碍，偏执性障碍。人格障碍：回避型人格。
"
    },
    {
      :name => "M37",
      :dimen1 => "HyPt",
      :dimen2 => "HyPt",
      :expl => "被试者几乎总是表现为神经质，紧张，焦虑，抑郁，容易受到日积月累的应激的损伤。长期精神紧张史，可能主诉睡眠障碍。对自身行为缺乏自知力，过度使用压抑及否认的防御机制，常有心身症候。是焦虑依赖个体，对自身十分苛求。
诊断：情感性障碍（ 抑郁），焦虑性障碍，躯体化障碍，心理因素影响躯体状况。人格障碍：依赖，被动!攻击，回避，强迫人格。
"
    },
    {
      :name => "M38",
      :dimen1 => "HySc",
      :dimen2 => "HySc",
      :expl => "被试者的心理问题在于思维障碍，可能有妄想，有古怪的躯体不适。有很多心理紊乱表现，甚至对极小的事情也不能作出决定。存在许多精神应激，焦虑，紧张，神经过敏，烦躁，抑郁。情绪焦虑容易以躯体疾病形式表现出来，特别是胃肠道问题，头昏，疼痛，头痛，睡眠障碍。往往有思维障碍及难以集中注意力，分裂样障碍或依赖，强烈地需要他人注意和同情。被试者明显的表现是
将其受到的挫折转化至自身，思维习惯与众不同，偶尔有联想散漫，强迫观念，沉思和过分担心。被试者行为退缩，如果存在躯体症候，很可能是继发性的。感到害怕，情感脆弱，忧心忡忡。尽管非常渴望受人注意和同情，却同时害怕情感依赖。如果是大学生，则常优柔寡断，思维混乱，担心，学业不良。
诊断：情感性障碍（ 抑郁），适应性障碍，精神分裂性障碍，躯体化障碍。人格障碍：回避型人格障碍。
"
    },
    {
      :name => "M39",
      :dimen1 => "HyMa",
      :dimen2 => "HyMa",
      :expl => "被试者的行为带有表演性，开朗，喜欢社交。有的人可能有急性发作性疾病，或者在躯体疾病的发作期。容易出现急性应激障碍，有焦虑及躯体疾病（ 如心动过速和头痛）。可能有潜在的抑郁，偶尔存在幻觉。过多应用压抑和否认的防御机制。对某一拒绝过的人显示敌意，又对在性行为上受其吸引和过度依赖的人怀有潜在的敌意。常戏剧性地开朗，情感外露，不能意识这对自身和对他人带来的影响。缺乏自知之明，常有依赖冲突。"
    },
    {
      :name => "M43",
      :dimen1 => "PdHy",
      :dimen2 => "PdHy",
      :expl => "被试者不是总能够适当的控制自己的行为，而且具有循环出现的特点。在精神卫生机构，这种病人对拒绝很敏感，控制愤怒的能力很差，有的将愤怒转向自身，出现自杀和酗酒。在司法精神病学鉴定中比较多见，不少人被诊断为边缘性人格障碍，癔症性人格障碍。"
    },
    {
      :name => "M45",
      :dimen1 => "PdMf",
      :dimen2 => "MfPd",
      :expl => "被试者不成熟，自恋，常有强烈的但不被认识的依赖需求并与之抗争。常有性角色识别障碍，对异性的要求过分敏感。尽管不遵从，但很少以吵闹的方式发泄出来，除非在应激状况时或继发于药物或酒精滥用时。内疚感和悔恨感常由外界应激所引起，往往和人际关系问题有关，一般也是暂时性的。对药物及酒精嗜
好有高度易感性。这些病人存在的性问题（ 如同性恋），潜在的性冲突或其他性功能障碍。可能是反对清规戒律的，一旦受到良好教育后会热衷于社会事业或社会活动。
绝大多数人被认为是被动)攻击性人格障碍。女性更富有攻击性，而男性则更被动和依赖。
"
    },
    {
      :name => "M46",
      :dimen1 => "PdPa",
      :dimen2 => "PdPa",
      :expl => "被试者不成熟，对抗，过度敏感，自恋，自我陶醉，人际关系不良，特别是与异性的关系，常有发作性愤怒爆发。常闷闷不乐，易激动，好争辩，常令人讨厌。不满权威，对他人的要求十分敏感。有时报告躯体疾病，如哮喘，高血压，头痛及心脏疾病。与异性的关系上，女性表现非常苛求，依赖他人；男性则表现为苛求和妒忌，对药物及酒精嗜好有高度易感性。与他人在一起感到不舒服，疑心重重-特别对异性。往往有人际关系不良的生活史和工作业绩不良史。敌意，反复无常，多疑，常把自身的问题归之于他人，容易出现违法犯罪问题。
在精神病人中，大多数诊断为情感性障碍（ 重度抑郁），物质滥用，约3/1的第二或第三诊断是心理因素影响躯体状况。人格障碍：被动-攻击与表演性，偏执性或分裂型。"
    },
    {
      :name => "M47",
      :dimen1 => "PdPt",
      :dimen2 => "PdPt",
      :expl => "被试者行为矛盾，对他人极不敏感，对自身行为感到内疚。因此，常出现行为发泄，随后对其行为感到非常后悔。如此循环不已。这种内疚和自责常并不足以阻止更进一步的发泄。人格不成熟，情绪反复无常，缺乏安全感。有很高的寻求他人同情的要求，但其情绪变幻莫测和反复无常的行为，却使他人与其疏远。常报告有自卑感，悔恨的时候寻求心理治疗介入，之后又出现发泄行为。经常存在与焦虑相关的躯体疾病（ 如头痛，胃痛）。还有依赖冲突，缺乏自我价值感。对药物及酒精嗜好有高度易感性，常有性行为问题。
寻求治疗的青少年，有行为发泄，反复无常，缺乏安全感，很少有亲密的知心朋友。如果是寻求心理咨询的大学生，大多数人格不成熟，心境灰暗，感到自己低人一等，思维反刍。
病人的大多数诊断：情感性障碍（ 抑郁或双相障碍）。约一半病人存在人格障碍：被动-攻击人格。鉴别诊断：戏剧性人格。约, 3/1的病例是物质滥用者。
"
    },
    {
      :name => "M48/84",
      :dimen1 => "PdSc",
      :dimen2 => "ScPd",
      :expl => "被试者的外表和行为古怪，反复无常，有情感障碍和古怪思维，常有情绪发泄。但是，被试者的情绪发泄通常并不仅为了寻求刺激，而因社会判断能力低下。感到受人排斥，可能在童年时经历过别人的辱骂或者虐待，从小就把世界看得冷酷无情。心存恐惧，情绪不稳定，易有自杀企图。对药物及酒精嗜好有高度易感性。性问题及性行为障碍发生率高，往往有不寻常的行为史。不合群，孤立，同时又强烈要求受人注意和同情，很可能有攻击性暴力发泄，或者发怒时攻击他人。
如果是寻求治疗的青少年，其人格不成熟，极度自恋，愤恨，好争辩，在治疗中只有16%的人得到改善。
如果是有犯罪行为的人，其实施的行为让人不可理解，缺乏计划性和预谋，手段残忍，不合情理。有的有药物滥用和酗酒。
如果是大学生，倾向于优柔寡断，情绪不悦，担心，思维混乱，与父辈关系紧张。情绪抑郁，头疼，缺乏与异性交往的技巧。
如果是住院的精神病人，常有古怪思维和其他精神病性症状，而且存在的时间远比父母所反映的长。可能有自杀观念（ 应检查4个提示自杀的条目和有关量表）。相当一部分人患精神病性障碍（ 精神分裂症和情感性障碍），物质滥用或适应性障碍伴抑郁情绪。人格诊断：边缘性，反社会性或表演性人格。
"
    },
    {
      :name => "M49/94",
      :dimen1 => "PdMa",
      :dimen2 => "MaPd",
      :expl => "被试者易冲动，是享乐主义者，反社会者。自我陶醉，自我中心，道德观念差。有多种发泄行为，其动机和目的是寻求刺激，非常渴望兴奋和激动。几乎总是有教育无成就及家庭问题，职业和%或法律问题。对药物及酒精嗜好有高度易感性。
如果是年轻人，从约25岁开始，通常表现为长期的享乐主义，很难改变，预后很差。无责任心，花费许多精力以满足其自身的欲望。当受压制时，容易产生敌意和显示对环境操纵，并且将其合理化。这种青少年不服管教，寻求刺激，逃学，与双亲关系紧张，有可能和自己类似的朋友，有的有药物滥用。容易有反社会行为，好斗，伤害他人。男性多有过量饮酒问题。
如果是大学生，学业成绩远不如人们预期应该达到的水平。难以控制攻击，不听规劝。男性往往与父亲有冲突，女性常有家庭冲突，目标茫然不清，缺乏学习动机。如果是一般在校学生，通常学业低下，有的有不良行为；女性大学生有人际关系障碍，但是很少有精神病范畴的问题。
如果是被关押的罪犯，除了杀人，很可能还有强奸、放火等暴力犯罪行为。智力高于平均水平，以往很可能有犯罪史。
在精神病人中，具容易出现激惹，发怒，对于不适意的事情很容易不安。有的自我中心，情绪不稳，冲动，敌意，对挫折的耐受力很差。占压倒多数的都被认为是反社会性心理变态，或较轻的表演性人格，少数人被诊断为精神病（ 特别是双相型障碍）。适合于锂盐治疗。75%的病人是物质滥用者。其他诊断是适应性障碍。
"
    },
    {
      :name => "M40",
      :dimen1 => "PdSi",
      :dimen2 => "PdSi",
      :expl => "如果是寻求治疗的青少年，多疑，不真诚，反复无常，有大量的愤怒被压制内心，倾向于有情绪发泄。害羞，很少有朋友。缺乏自信，郁闷不乐，有妒忌感，同时在其性格结构上又有回避的方面。感到与别人相处时非常不舒服，人际关系不好。
诊断：适应性障碍，物质滥用。人格障碍：被动攻击型人格。如果是精神病人，容易愤怒，敌意，把不幸归于他人。社会判断力和控制冲动的能力很差，不能坚持工作。绝大多数诊断为被动!攻击人格或者依赖型人格障碍。
"
    },
    {
      :name => "M5M",
      :dimen1 => "",
      :dimen2 => "",
      :expl => "被试者被动，敏感，能够表达其感受。依赖，顺从，缺乏自信。处事待人时避免对抗，在其人格形态上可能有强迫性因素。偶尔有性认同冲突，不符合传统的男性角色。这些男性有广泛的兴趣，比较关心社会问题，是理想主义者。"
    },
    {
      :name => "M5N",
      :dimen1 => "",
      :dimen2 => "",
      :expl => ""
    }
  ]

  def self.pre_report(pre_survey_record)
    report = {}
    dimen_results = {}
    ors = PreOriginalResult.find(:all, :conditions => "test_record_id = #{pre_survey_record.id}")

    h = {}
    ors.each{|o| h["q#{o.question.position}"] = o.value}
    if pre_survey_record.gender == "男"
      @@dimen_formulas_male.keys.each do |key|
        #变形为可用的公式
        formula = @@dimen_formulas_male[key].gsub(/f\d+/) {|s| "(#{s.sub(/f/, 'q')} == 0 ? 1 : 0)"}
        formula = formula.gsub(/q\d+/) { |s| "h['#{s}']" }
        x = eval(formula)
        #原十分换算成标准分
        t = 50 + (10*(x - @@norm_male[key]["M"]))/@@norm_female[key]["SD"]

        dimen_results[key] = t
      end
    else
       @@dimen_formulas_female.keys.each do |key|
        #变形为可用的公式
        formula = @@dimen_formulas_male[key].gsub(/f\d+/) {|s| "(#{s.sub(/f/, 'q')} == 0 ? 1 : 0)"}
        formula = formula.gsub(/q\d+/) { |s| "h['#{s}']" }
        x = eval(formula)
        #原十分换算成标准分
        t = 50 + (10*(x - @@norm_female[key]["M"]))/@@norm_female[key]["SD"]

        dimen_results[key] = t
      end
    end
    
    code = get_code(dimen_results)
    report[:dimen_results] = dimen_results
    report[:code] = code
    return report
  end

  def self.report(survey_record)
    report = {}
    dimen_results = {}
    ors = OriginalResult.find(:all, :conditions => "test_record_id = #{survey_record.id}")

    h = {}
    ors.each{|o| h["q#{o.question.position}"] = o.value}

    if survey_record.gender == "男"
      @@dimen_formulas_male.keys.each do |key|
        #变形为可用的公式
        formula = @@dimen_formulas_male[key].gsub(/f\d+/) {|s| "(#{s.sub(/f/, 'q')} == 0 ? 1 : 0)"}
        formula = formula.gsub(/q\d+/) { |s| "h['#{s}']" }
        x = eval(formula)
        #原十分换算成标准分
        t = 50 + (10*(x - @@norm_male[key]["M"]))/@@norm_female[key]["SD"]

        dimen_results[key] = t
      end
    else
       @@dimen_formulas_female.keys.each do |key|
        #变形为可用的公式
        formula = @@dimen_formulas_male[key].gsub(/f\d+/) {|s| "(#{s.sub(/f/, 'q')} == 0 ? 1 : 0)"}
        formula = formula.gsub(/q\d+/) { |s| "h['#{s}']" }
        x = eval(formula)
        #原十分换算成标准分
        t = 50 + (10*(x - @@norm_female[key]["M"]))/@@norm_female[key]["SD"]

        dimen_results[key] = t
      end
    end

    code = get_code(dimen_results)
    report[:dimen_results] = dimen_results
    report[:code] = code
    return report
  end
  

  def self.pre_t_xml(report)
    xml = Builder::XmlMarkup.new
    xml.instruct!
    xml.graph(:caption=>'中文', :subCaption=>'', :showPercentageInLabel=>'1',:pieSliceDepth=>'25',
          :decimalPrecision=>'0',:showNames=>'1', :yAxisMinValue=> '120', :xAxisName=>'因子', :yAxisName=>'T分'
          ) do
      report[:dimen_results].each do |d|
        xml.set(:label=>d[0],:value=> sprintf('%8.0f',d[1]))
      end
    end
  end

  def self.pre_t_json(report)
    json = "[{label: '', data: [null, "
    json_end = "null]
              },

              {
                  lines: {show: false},
                  points: {show: false},
                  data: [[0, 0], [1, 2], [2, 10],[3, 0], [4, 55], [5, 22], [6, 44], [7, 2.5], [8, 2.5], [9, 2.5],
                      [10, 2.5],[11, 2.5],[12, 2.5],[13, 2.5], [14, 0], [15, 1]
                  ]
              }

              ]"

    json += "[1, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:L]]) + "],"
    json += "[2, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:F]]) + "],"
    json += "[3, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:K]]) + "],"
    json += "null,"
    json += "[5, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Hs]]) + "],"
    json += "[6, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:D]]) + "],"
    json += "[7, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Hy]]) + "],"
    json += "[8, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Pd]]) + "],"
    json += "[9, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Mf]]) + "],"
    json += "[10, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Pa]]) + "],"
    json += "[11, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Pt]]) + "],"
    json += "[12, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Sc]]) + "],"
    json += "[13, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Ma]]) + "],"
    json += "[14, " + sprintf("%8.0f", report[:dimen_results][@@dimens[:Si]]) + "],"
    json += json_end

    json
  end

  #得到两边编码类型
  def self.get_code(dimen_results)
    code_mapping = {
      "Hs" => 1,
      "D" => 2,
      "Hy" => 3,
      "Pd" => 4,
      "Mf" => 5,
      "Pa" => 6,
      "Pt" => 7,
      "Sc" => 8,
      "Ma" => 9,
      "Si" => 0,
    }
    dimens = []

    dimen_results.keys.each do |key|
      if dimen_results[key] >= 60
        dimens.push([key, dimen_results[key]])
      end
    end

    #编码型：一点／两点／三点
    if dimens.size == 1
      code = "M" + code_mapping[dimens[0][0]].to_s
    elsif dimens.size == 2
      a = code_mapping[dimens[0][1]]
      b = code_mapping[dimens[1][1]]
      code_a = a >= b ? a : b
      code_b = a < b ? a : b

      code = "M#{code_a}/#{code_b}"
puts "code>>>>>>>>>>>>>>>>>>>>>>>>>>#{code}"
      #code = @@codes.find {|c| dimens == c[:dimen1] or dimens == c[:dimen2]} || "找不到编码型"
    else
      code = "不符合编码型"
    end

    return code 
  end
end